<cfcomponent>
  <cffunction name="init" output="false">
    <cfreturn this />
  </cffunction>

  <cffunction name="findItems" output="false" returntype="array">
    <cfargument name="name"  required="true" />
    <cfset var querydata = "" />
    <cfset var cq = "" />
    <cf_QuerySim>
      querydata
      name,address,city,state,zip,phone
      Lee|480 Spainhour|Lewisville|NC|27023|919-919-9199
      Chris|City Lane|Winston|MT|27157|919-919-9111
      Joe|Any City Block|Missoula|MT|44444|330-330-3300
      Joe|Any City Block|Missoula|NC|44444|330-330-3300
      Joe|Any City Block|Missoula|MT|44444|330-330-3300
      Joe|Any City Block|Missoula|NC|44444|330-330-3300
      Joe|Any City Block|Missoula|MT|44444|330-330-3300
      Joe|Any City Block|Missoula|NC|44444|330-330-3300
    </cf_querysim>
    <cfset cq = createObject("component","org.coldquery.ColdQuery").init(querydata).$("return item.name EQ '#arguments.name#';").getItems() /><!--- should give me an array of structs --->

    <cfreturn cq/>
  </cffunction>

  <cffunction name="findByState" output="false" returntype="array">
    <cfargument name="value"  required="true" />
    <!--- this is not right.  How do I know to filter for joe first? --->
    <cfset var q = findItems(name='joe') />
    <cfset var cq = createObject("component","org.coldquery.ColdQuery").init(q).$("return item.state EQ '#arguments.value#';").getItems() /><!--- should give me an array of structs --->
    <cfreturn cq />
  </cffunction>

  <cffunction name="getSize" output="false">
    <cfargument name="name"  required="true" />
    <cfset var q = findItems(argumentcollection = arguments)>
    <cfreturn arrayLen(q) />
  </cffunction>
</cfcomponent>